package com.geline.easyexcel.annotation;

import com.alibaba.excel.enums.CellDataTypeEnum;
import com.geline.easyexcel.domain.RegexEnum;

import java.lang.annotation.*;

/**
 * 自定义检验
 *
 * @author: mengxin
 * @date: 2024/1/12 20:45
 */
@Documented
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.FIELD)
public @interface ExcelValid {

    //类型 STRING,NUMBER,BOOLEAN,DATE
    CellDataTypeEnum type() default CellDataTypeEnum.STRING;

    //非null
    boolean notNull() default false;

    //非空
    boolean notBlank() default false;

    //限制长度
    int length() default -1;

    //正则表达式Enum
    RegexEnum regexEnum() default RegexEnum.no;

    //正则表达式
    String regex() default "";

    //当前月
    boolean curMonth() default false;

    //格式化
    @Deprecated
    String format() default "";

    //长度限制提示
    String validLengthTip() default "长度必须小于%s";
    //非null提示
    String validNotNullTip() default "不允许为空";
    //非空提示
    String validNotBlankTip() default "不允许为空";
    //类型检验提示
    String validTypeTip() default "类型不正确，必须为%s";
    //正则匹配失败提示
    String validRegexTip() default "格式不匹配，必须为%s";
    //正则匹配失败提示
    String validCurMonthTip() default "必须为当前月份";
}
